This invention relates to compressed data transmissions and, more particularly, to the decoding and encoding of data streams.
Multimedia, a combination of audio, video, still pictures, and text, is increasingly available to consumers worldwide. Multimedia content may be received by a computer connected to a network or by a television set connected to a cable wire, a satellite dish, or an antenna, as just a few examples.
Particularly because of the video content, multimedia data streams are typically compressed (or encoded) prior to transmission, then decompressed (or decoded) at a receiver. By one measure, a single second of uncompressed, broadcast quality video data may be represented using 270 Mbits. Transmission bandwidth and storage limitations make data compression a sensible choice for most applications.
One of the features of video compression is motion estimation. Motion estimation predicts where an object on a video frame will be, based upon the l,position of the object in a prior video frame. This repetition of images between frames xe2x80x9cis known as temporal redundancy. Motion estimation exploits temporal redundancy by storing a motion vector to represent the position of an object relative to its position in a prior video frame. Using motion vectors, the bits used to represent the object may, in essence, be reused for each subsequent frame which includes the object.
Although effective in reducing the number of bits to be transmitted or stored, motion estimation is very computationally intensive, and thus, expensive. Although algorithms for xe2x80x9cintelligent predictionxe2x80x9d may reduce the cost of motion estimation, this aspect of video compression nevertheless remains an expensive part of the encoding process.
Increasingly, data streams such as multimedia content may, be manipulated down the pipeline before being received by the intended site. For example, a set-top box may re-format a data stream in some way before sending the data to a television. In order to xe2x80x9cadd valuexe2x80x9d to the multimedia content, the receiver thus may decode the data stream, make the desired changes to the video stream, and re-encode the data stream before sending to the site.
To encode the newly changed video stream, a new set of motion vectors may be calculated. However, particularly for some low-cost receiver/encoders, the capability to perform computationally intensive motion estimation may be limited
Thus, there is a continuing need to provide a low-cost system for decoding and encoding a data stream.